100 HOME : VTAB 12: PRINT "** COPYRIGHT 1984 BY MICROSPARC, INC. **": GOSUB 1300
110 D$ = CHR$(4)
120 PRINT D$"BLOAD SHIPP": POKE 216,0
130 DIM FX(25): DIM FY(25): DIM FT(25)
140 DATA 255,90,190,90,151,20,190,20,255,90,151,90,190,90,151,20,190,20,255,90,151,90,190,90,151,20,190,20,255,90,255,90,190,200
150 GOSUB 1200
160 NF = 5:MF = 5
170 RESTORE
180 GM = FRE(0)
190 HGR2 : HCOLOR= 3: ROT= 0: SCALE= 1
200 POKE 232,216: POKE 233,29
210 GOSUB 1280
220 GOSUB 240
230 GOTO 450
240 HPLOT 0,1 TO 0,3: HPLOT 1,0 TO 1,4 TO 2,4 TO 2,3 TO 3,3 TO 3,7: HPLOT 4,4 TO 4,6: HPLOT 3,7 TO 0,7 TO 0,6 TO 1,6
250 HPLOT 139,0 TO 139,7: HPLOT 140,0 TO 140,7: HPLOT 142,0 TO 142,7: HPLOT 143,0 TO 143,7: HPLOT 141,3: HPLOT 147,0 TO 147,7: HPLOT 146,0 TO 146,7
260 HPLOT 150,1 TO 150,3: HPLOT 151,0 TO 151,4 TO 152,4 TO 152,3 TO 153,3 TO 153,7: HPLOT 154,4 TO 154,6: HPLOT 153,7 TO 150,7 TO 150,6 TO 151,6
270 HPLOT 2,0 TO 4,0 TO 1,4 TO 1,3
280 HPLOT 152,0 TO 154,0 TO 151,4 TO 151,3
290 HPLOT 7,1 TO 7,6: HPLOT 8,0 TO 8,7 TO 11,7 TO 11,6 TO 10,6
300 HPLOT 157,1 TO 157,6: HPLOT 158,0 TO 158,7 TO 161,7 TO 161,6 TO 160,6
310 HPLOT 8,0 TO 11,0 TO 11,1 TO 10,1
320 HPLOT 158,0 TO 161,0 TO 161,1 TO 160,1
330 HPLOT 14,1 TO 14,6: HPLOT 15,0 TO 15,7: HPLOT 16,0: HPLOT 16,7
340 HPLOT 164,1 TO 164,6: HPLOT 165,0 TO 165,7: HPLOT 166,0: HPLOT 166,7
350 HPLOT 18,1 TO 18,6: HPLOT 17,0 TO 17,7
360 HPLOT 168,1 TO 168,6: HPLOT 167,0 TO 167,7
370 HPLOT 21,0 TO 21,7 TO 22,7 TO 22,0 TO 24,0 TO 24,7 TO 25,7 TO 25,4 TO 23,4 TO 23,3 TO 24,3 TO 25,2 TO 25,1: HCOLOR= 0: HPLOT 25,4: HCOLOR= 3
380 HPLOT 171,0 TO 171,7 TO 172,7 TO 172,0 TO 174,0 TO 174,7 TO 175,7 TO 175,4 TO 173,4 TO 173,3 TO 174,3 TO 175,2 TO 175,1: HCOLOR= 0: HPLOT 175,4: HCOLOR= 3
390 HPLOT 28,1 TO 28,6: HPLOT 29,0 TO 29,7 TO 32,7 TO 32,6 TO 31,6
400 HPLOT 178,1 TO 178,6: HPLOT 179,0 TO 179,7 TO 182,7 TO 182,6 TO 181,6
410 HPLOT 29,0 TO 32,0 TO 32,1 TO 31,1: HPLOT 30,3 TO 31,3
420 HPLOT 179,0 TO 182,0 TO 182,1 TO 181,1: HPLOT 180,3 TO 181,3
430 HPLOT 35,2 TO 36,2 TO 36,3 TO 35,2: HPLOT 35,5 TO 36,5 TO 36,6 TO 35,5
440 HPLOT 185,2 TO 186,2 TO 186,3 TO 185,2: HPLOT 185,5 TO 186,5 TO 186,6 TO 185,5: RETURN
450 FOR I = 0 TO 272 STEP 4: HPLOT I,160: NEXT
460 FOR MK = 1 TO 17: IF PEEK( -16384) = 77 +128 THEN MK = 17
550 FOR I = 1 TO NF:FX(I) = INT((25 * RND(1))):FX(I) = FX(I) *10 +20:FY(I) = 15: NEXT
560 FOR I = 1 TO NF:FT(I) = 20 -I -NW: IF FT(I) <3 THEN FT(I) = 3
570 NEXT
580 FT(NF) = 50
590 FOR XX = 1 TO NF
600 FOR I = 1 TO FT(NL)
610 IF I = 35 AND FT(NL) = 50 THEN HCOLOR= 3:MSI = MSI: DRAW FF +2 AT PF,180:PF = PF +15: IF PF = 270 THEN HCOLOR= 0: FOR Y = 179 TO 191: HPLOT 0,Y TO 279,Y: NEXT :PF = 15
620 FOR O = 1 TO NL -1
630 IF FY(O) = 200 THEN 700
640 HCOLOR= 0: DRAW FF +2 AT FX(O),FY(O)
650 FY(O) = FY(O) +3
660 HCOLOR= 3
670 DRAW FF +2 AT FX(O),FY(O)
680 IF F = 1 THEN IF FX(O) = BX AND BY <FY(O) +10 AND BY >FY(O) -13 THEN HCOLOR= 0: DRAW FF +2 AT FX(O),FY(O): DRAW 17 AT BX,BY: HCOLOR= 3: DRAW 6 AT FX(O),FY(O): HCOLOR= 0: DRAW 6 AT FX(O),FY(O):F = 0:FY(O) = 200: GOSUB 1240: GOSUB 1160: GOTO 700
690 IF FY(O) = >153 THEN GOSUB 880
700 NEXT O
710 REM **********************
720 HCOLOR= 0: DRAW 1 AT X,153: DRAW 2 AT X +2,161
730 IF PEEK(9000) = 50 THEN 780
740 IF PEEK( -16384) = 149 AND X <261 THEN X = X +10
750 IF PEEK( -16384) = 136 AND X >21 THEN X = X -10
760 IF F = 0 THEN IF PEEK( -16384) = 193 THEN F = 1:BX = X:BY = 162: POKE -16368,0
770 GOTO 810
780 IF PDL(0) >254 AND X <261 THEN X = X +10
790 IF PDL(0) <6 AND X >21 THEN X = X -10
800 IF F = 0 THEN IF PEEK( -16287) >127 THEN F = 1:BX = X:BY = 162
810 HCOLOR= 3: DRAW 1 AT X,153: DRAW 2 AT X +2,161
820 IF F = 1 THEN HCOLOR= 0: DRAW 17 AT BX,BY:BY = BY -21: IF BY <22 THEN F = 0
830 IF F = 1 THEN HCOLOR= 3: DRAW 17 AT BX,BY
840 NEXT I:NL = NL +1
850 NEXT XX
860 GOTO 520
870 REM
880 HCOLOR= 0: DRAW FF +2 AT FX(O),FY(O): GOSUB 1230
890 M = FX(O):P = FX(O): FOR PP = 0 TO 272:M = M -1:P = P +1
900 IF M = >0 THEN HPLOT M,160
910 IF P = <272 THEN HPLOT P,160
920 IF M <X AND P >X THEN PP = 272
930 IF M <0 AND P >272 THEN PP = 272
940 NEXT
950 DRAW 1 AT X,153: DRAW 2 AT X +2,161:XX = 20
960 FOR Z = 153 TO 170: HCOLOR= 0: DRAW 1 AT X,Z -1: DRAW 2 AT X +2,Y +7
970 HCOLOR= 3: DRAW 1 AT X,Z: DRAW 2 AT X +2,Z +8: FOR I = 1 TO XX/2: NEXT I:XX = XX -1: NEXT
980 HCOLOR= 0: DRAW 1 AT X,Z: DRAW 2 AT X +2,Z +8: HCOLOR= 3
990 FOR O = 1 TO 3
1000 FOR LL = 1 TO 10: POKE 6,0: POKE 7,1: CALL 768: NEXT
1010 Y = 173
1020 IF X >59 THEN HPLOT X -9 *O,Y +6 *O TO X -20 *O,Y +5 *O TO X -10 *O,Y +4 *O TO X -13 *O,Y +2 *O TO X -8 *O,Y +3 *O
1030 FOR LL = 1 TO 10: POKE 6,0: POKE 7,1: CALL 768: NEXT
1040 IF X >59 THEN HPLOT TO X -11 *O,Y -1 *O TO X -7 *O,Y +1 *O TO X -8 *O,Y -5 *O TO X -6 *O,Y -2 *O TO X -5 *O,Y -5 *O TO X -2 *O,Y -2 *O TO X,Y -7 *O
1050 FOR LL = 1 TO 10: POKE 6,0: POKE 7,1: CALL 768: NEXT
1060 IF X <219 THEN HPLOT X +9 *O,Y +6 *O TO X +20 *O,Y +5 *O TO X +10 *O,Y +4 *O TO X +13 *O,Y +2 *O TO X +8 *O,Y +3 *O TO X +11 *O,Y -1 *O
1070 FOR LL = 1 TO 10: POKE 6,0: POKE 7,1: CALL 768: NEXT
1080 IF X <219 THEN HPLOT TO X +7 *O,Y +1 *O TO X +8 *O,Y -5 *O TO X +6 *O,Y -2 *O TO X +5 *O,Y -5 *O TO X +2 *O,Y -2 *O TO X,Y -7 *O
1090 NEXT O
1100 GOSUB 1360
1110 : HOME : TEXT : VTAB 8: PRINT "SCORE:";SC: VTAB 10: GOSUB 1460
1120 POKE -16368,0
1130 GET A$: IF A$ = "P" OR A$ = "K" THEN POKE 9000,(50 *(A$ = "P") +10 *(A$ = "K")): RUN 100
1140 IF A$ = "Q" THEN HOME : END
1150 GOTO 1130
1160 HCOLOR= 0:SC$ = STR$(SC):SR = LEN(SC$): FOR W = 1 TO SR:WW$ = MID$ (SC$,W,1):WW = VAL(WW$): DRAW WW +7 AT W *7 +37,5: NEXT
1170 SC = SC +10 *(FF +2)
1180 HCOLOR= 3:SC$ = STR$(SC):SR = LEN(SC$): FOR W = 1 TO SR:WW$ = MID$ (SC$,W,1):WW = VAL(WW$): DRAW WW +7 AT W *7 +37,5: NEXT : IF SC >HS THEN HS = SC
1230 FOR FD = 1 TO 3: POKE 6,200: POKE 7,30: CALL 768: POKE 6,80: POKE 7,30: CALL 768: NEXT : RETURN
1240 SN = INT(50 * RND(1)) +1
1250 ND = INT(50 * RND(1)) +1
1260 FOR O = 1 TO 7: POKE 6,SN: POKE 7,1: CALL 768: POKE 6,ND: POKE 7,1: CALL 768: NEXT
1270 RETURN
1280 HS$ = STR$(HS):SR = LEN(HS$): FOR W = 1 TO SR:WW$ = MID$ (HS$,W,1):WW = VAL(WW$): DRAW WW +7 AT W *7 +190,5: NEXT
1290 RETURN
1300 D$ = CHR$(4): ONERR GOTO 1490
1310 PRINT D$
1320 PRINT D$"BLOAD HISCORE": POKE 216,0
1330 FOR I = 1 TO PEEK(8195)
1340 NC = PEEK(8195 +I):HS$ = HS$ + CHR$(NC): NEXT
1350 HS = VAL(HS$): RETURN
1360 HS$ = STR$(HS)
1370 POKE 8195, LEN(HS$)
1380 FOR O = 1 TO LEN(HS$)
1390 POKE 8195 +O, ASC( MID$ (HS$,O,1)): NEXT
1400 D$ = CHR$(4)
1410 PRINT D$
1420 PRINT D$"BSAVE HISCORE,A8195,L8"
1430 RETURN
1440 TEXT : HOME : PRINT "SUCCESSIVE WAVES OF EVIL SHAPE TABLES": PRINT "WILL DESCEND DOWN ON YOU. WITH THE ": PRINT "PADDLES, JOYSTICK, OR KEYBOARD": PRINT "YOUR MISSION IS TO DESTROY THEM ": PRINT "BEFORE THEY REACH THE ENERGY LINE ": PRINT "SUSPENDING YOUR SHIP."
1450 PRINT : PRINT "ALIENS ARE WORTH 30,40 OR 50 POINTS": PRINT